JBoss Community Archive (Read Only)

Teiid 8.0

Building a VDB

A VDB can be built with either the Designer tool or through a simple XML file called a Dynamic VDB. For this example we will use Dynamic VDB. If you would like to use the Designer to build your VDB, check out the Designer examples. If you need to build any view layers using your source, you must use the Designer based approach to building the VDB.

Building a Dynamic VDB

This XML file defines a set of sources that can be accessed by the client application. A Dynamic VDB does not yet allow for the creation of view layers. Below is the "dynamicvdb-portfolio" example vdb.

portfolio-vdb.xml (copy available in "<jboss-install>/docs/teiid/examples/dynamicvdb-portfolio" directory)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vdb name="DynamicPortfolio" version="1">

    <description>A Dynamic VDB</description>

    <!--
      Setting to use connector supplied metadata. Can be "true" or "cached".
      "true" will obtain metadata once for every launch of Teiid.
      "cached" will save a file containing the metadata into
      the deploy/<vdb name>/<vdb version/META-INF directory
    -->
    <property name="UseConnectorMetadata" value="true" />


    <!--
      Each model represents a access to one or more sources.
      The name of the model will be used as a top level schema name
      for all of the metadata imported from the connector.

      NOTE: Multiple model, with different import settings, can be bound to
      the same connector binding and will be treated as the same source at
      runtime.
    -->
    <model name="MarketData">
        <!--
            Each source represents a translator and data source. There are
            pre-defined translators, or you can create one. ConnectionFactories
            or DataSources in JBoss AS they are typically defined using "xxx-ds.xml" files.
        -->
        <source name="text-connector" translator-name="file" connection-jndi-name="java:marketdata-file"/>
    </model>

    <model name="Accounts">
        <!--
          JDBC Import settings

          importer.useFullSchemaName directs the importer to drop the source
          schema from the Teiid object name, so that the Teiid fully qualified name
          will be in the form of <model name>.<table name>
        -->
        <property name="importer.useFullSchemaName" value="false"/>

         <!--
            This connector is defined in the "portfoio-ds.xml"
          -->
        <source name="hsql-connector" translator-name="hsql" connection-jndi-name="java:PortfolioDS"/>
    </model>

</vdb>

The above vdb XML structure is explained.

  1. The "vdb" element defines the virtualdatase that has a name of "DynamicPortfolio" with version "1"

  2. A "model" element represents a schema that being integrated. This sample defines two sources, "MarketData" that represents the schema for the text file that has the stock price information and "Accounts" that represents the "portfolio" schema in the HSQL database.

  3. The "source" element inside the "model" element defines name of the source (can be any name), and name of the translator (defines the type of the source like oracle, db2, mysql, h2, file, ws etc..) and the "connection-jndi-name" defines the source's JNDI name in the JBoss AS container.

  4. Also note that inside the "model" elements, some "property" elements are used to define how metadata can be imported from source. For more information check out the Reference Guide's Dynamic VDB section.

  5. Note that you need to also create the necessary deployment files for the data sources (Connection Factories) too.

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-13 12:00:38 UTC, last content change 2012-05-01 16:12:50 UTC.